package com.vegetable.modules.entity.finance;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

@Data
@EqualsAndHashCode(callSuper = false)
@TableName("bank_flow_import_config")
@ApiModel(value="银行流水导入配置对象", description="银行流水导入配置对象")
public class BankFlowImportConfig {

    @ApiModelProperty("主键id")
    @JsonSerialize(using = ToStringSerializer.class)
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @ApiModelProperty("配置名称")
    private String configName;

    @ApiModelProperty("银行类型")
    private String bankType;

    @ApiModelProperty("文件类型 (Excel/CSV)")
    private String fileType;

    @ApiModelProperty("字段映射配置 (JSON格式)")
    private String fieldMapping;

    @ApiModelProperty("创建时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    @ApiModelProperty("更新时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    @ApiModelProperty("创建人")
    private Long createUserId;

    @ApiModelProperty("更新人")
    private Long updateUserId;

    @ApiModelProperty("备注")
    private String remark;

    @ApiModelProperty("状态 0:启用 1:禁用")
    private Integer status = 0;
}